package com.redepronik.negosys.invfac.dao;

import org.hibernate.Query;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.redepronik.negosys.invfac.entity.Ingreso;
import com.redepronik.negosys.utils.dao.GenericDaoImpl;

@Repository
public class IngresoDaoImpl extends GenericDaoImpl<Ingreso, Long> implements
		IngresoDao {

	@Autowired
	public SessionFactory sessionFactory;

	public String comprobarIndices(Ingreso ingreso) {
		String mensaje = null;
		Ingreso objeto = null;
		objeto = obtenerPorTipoDocumentoIdAndCodigoDocumento(ingreso
				.getTipodocumento().getTipodocumentoid(),
				ingreso.getCodigodocumento());
		if (objeto != null) {
			mensaje = "El # de Documento ya existe";
		}
		return mensaje;
	}

	public Ingreso obtenerPorTipoDocumentoIdAndCodigoDocumento(
			Integer tipoDocumentoId, String codigoDocumento) {
		Ingreso objeto = null;
		Query query = sessionFactory
				.getCurrentSession()
				.createQuery(
						"from Ingreso as i where i.tipodocumento.tipodocumentoid=:tipoDocumentoId and i.codigodocumento.codigodocumentoid=:codigoDocumento");
		query.setParameter("tipoDocumentoId", tipoDocumentoId);
		query.setParameter("codigoDocumento", codigoDocumento);
		objeto = (Ingreso) query.uniqueResult();
		return objeto;
	}
}
